// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import state from '@admin/views/System/User/UserList/store/state'

const { WORD } = state.MAP
const PARAM = { idList: [], rowList: [] }

// ============================== 导出状态集 ============================== //

export const SCOPE = [
  [1, '维修工单', 'repair'],
  [2, `${CORE.MAP.ALARM}通知`, 'alarm'],
  [4, '巡检任务', 'inspection'],
  [8, '保养任务', 'maintenance'],
  [16, '保洁任务', 'cleaning'],
]

export default {
  // —————————————————————————————— 信息状态 —————————————————————————————— //

  /**
   * 接口
   */
  API: {
    MENU: ['__选择__', WORD], // 菜单
  },

  /**
   * 映射
   */
  MAP: state.MAP,

  /**
   * 字典
   */
  DICT: {
    /**
     * 范围
     */
    SCOPE,
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: '', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: {
    obj: {}, // 数据对象
    bind: '', // 绑定键名
    limit: 0, // 限制已选个数
    disabled: false, // 是否禁用选择
    grayed: [], // 置灰列表 (以 idKey 对应的字段匹配)
    organId: undefined,
    disableOrgan: false,
    left: CORE.clone(PARAM), // 左侧参数
    right: CORE.clone(PARAM), // 右侧参数
    height: 0, // 表格高度
  },

  /**
   * 初始参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setParam() 重置时使用
   * 4. WebSearch 高级查询点重置时使用
   */
  INIT_PARAM: {
    ...state.INIT_PARAM,
    orderBy: [],
    treeId: '',
    organId: [],
    scope: null, // 范围
  },
}
